<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        .app {
            /* 一个屏幕分成100份 每份就是1vw*/
            /* 1920px 19.2  1200 12 */
            width: 100vw;
            height: 100vh;
            display: flex;
            flex-direction: column;
        }

        .header {
            height: 80px;
            background-color: yellow;
        }

        .left {
            width: 150px;
            background: #000;
        }

        .right {
            flex: 1
        }

        .footer {
            height: 100px;
            background-color: pink;
        }

        .main {
            display: flex;
            flex: 1;
        }
    </style>
</head>

<body>
    <div id="app">
       
    </div>

    <template id="ap">
        <div class="app">
            <v-header></v-header>
            <v-main></v-main>
            <v-footer></v-footer>
        </div>
    </template>

    <template id="header">
        <div class="header">头部</div>
    </template>

    <template id="main">
        <div class="main">
            <v-left></v-left>
            <v-right></v-right>
        </div>
    </template>

    <template id="left">
        <div class="left">
            这是左边
        </div>
    </template>

    <template id="right">
        <div class="right">
            这是右边
        </div>
    </template>

    <template id="footer">
        <div class="footer">
            这是尾部
        </div>
    </template>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script>
        new Vue({
            el: '#app',
            render: (h)=>h('v-app'),
            components: {
                // 局部组件
                'v-app': {
                    template: '#ap',
                    // 局部组件
                    components: {
                        // 头部组件
                        'v-header': {
                            template: '#header'
                        },
                        // 主体组件
                        vMain: {
                            template: '#main',
                            components: {
                                // 左组件
                                vLeft: {
                                    template: '#left'
                                },

                                // 右组件
                                vRight: {
                                    template: '#right'
                                }
                            }
                        },
                        // 尾部组件
                        vFooter: {
                            template: '#footer'
                        }
                    }
                }
            }
        })
    </script>
</body>

</html>